﻿namespace DbManager.QueryBuilder.DbEntity.Pol
{
    public class EntityPol : AEntityPol
    {
        public override string GetSelectQuery()
        {
            return
                "SELECT Направление.Идентификатор AS Hide_IDNapravlenie, "+
                      "Город.Идентификатор AS Hide_IDGorod, "+
                      "[Цена проживания].[Идентификатор база отдыха] AS Hide_IDBazaOtdiha, "+
                      "[Цена проживания].Идентификатор AS Hide_IDPol, "+
                      "[Цена проживания].[Идентификатор комната] AS Hide_IDKomnata, "+
                      "[Цена проживания].[Идентификатор условия] AS Hide_IDUslovia, "+
                      "Направление.Название AS Направление, "+
                      "Город.Название AS Город, "+
                      "[База отдыха].Название AS [База отдыха], "+
                      "Комната.[Класс комнаты], "+
                      "Комната.[Количество мест] AS Мест, "+
                      "Условия.Название AS Условия, "+
                      "[Цена проживания].Цена " +
                "FROM ((Город INNER JOIN "+
                      "((([Цена проживания] INNER JOIN "+
                      "Комната ON [Цена проживания].[Идентификатор комната] = Комната.Идентификатор) INNER JOIN "+
                      "Условия ON [Цена проживания].[Идентификатор условия] = Условия.Идентификатор) INNER JOIN "+
                      "[База отдыха] ON [Цена проживания].[Идентификатор база отдыха] = [База отдыха].Идентификатор) ON "+
                      "Город.Идентификатор = [База отдыха].[Идентификатор города]) INNER JOIN "+
                      "Направление ON Город.[Идентификатор направления] = Направление.Идентификатор)";
        }

        public override string GetInsertQuery()
        {
            if (IDBazaOtdiha == 0 || IDKomnata == 0 || IDUslovia == 0 || Price == 0) return string.Empty;
            return
                "INSERT INTO [Цена проживания] ([Идентификатор комната], [Идентификатор условия], [Идентификатор база отдыха], Цена) VALUES (" +
                IDKomnata + ", " + IDUslovia + ", " + IDBazaOtdiha + ", '" + Price + "')";
        }

        public override string GetUpdateQuery()
        {
            if (IDBazaOtdiha == 0 || IDKomnata == 0 || IDUslovia == 0 || Price == 0 || ID == 0) return string.Empty;
            return "UPDATE [Цена проживания] SET [Идентификатор комната] = " + IDKomnata +
                   ", [Идентификатор условия] = " + IDUslovia + ", [Идентификатор база отдыха] = " + IDBazaOtdiha +
                   ", Цена = '" + Price + "' WHERE (Идентификатор = " + ID + ")";
        }

        public override string GetDeleteQuery()
        {
            if (ID == 0) return string.Empty;
            return "DELETE FROM [Цена проживания] WHERE ([Цена проживания].Идентификатор = " + ID + ")";
        }
    }
}